package db;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.LinkedList;

import model.Country;
import model.Customer;
import model.Outsider;
import model.Project;
import model.Statistics;

public interface IFStatistics
{
	public LinkedList<Statistics<Outsider>> getSupplierDeliveryStats(String locationCountry, String locationCity) throws SQLException;
	public LinkedList<Statistics<Country>> getCountrySupplierStats() throws SQLException;

	public LinkedList<Statistics<Customer>> getCustomerProjectStatsYear(boolean searchDate, String dateYear, String dateMonth, String locationCountry, String locationCity) throws SQLException;
	public LinkedList<Statistics<Customer>> getCustomerProjectStatsPeriod(boolean searchDate, String dateStart, String dateEnd, String locationCountry, String locationCity) throws SQLException;

	public LinkedList<Statistics<Project>> getProjectRevenueStatsYear(boolean searchDate, String dateStart, String dateEnd, String locationCountry, String locationCity) throws SQLException;
	public LinkedList<Statistics<Project>> getProjectRevenueStatsPeriod(boolean searchDate, String dateStart, String dateEnd, String locationCountry, String locationCity) throws SQLException;

	public ArrayList<String> getProjectAllYears();
	public ArrayList<String> getProjectAllMonths(String year);
	public ArrayList<String> getProjectCountries() throws SQLException;
	public ArrayList<String> getProjectCities(String country) throws SQLException;
	public ArrayList<String> getSupplierDeliveryCountries() throws SQLException;
	public ArrayList<String> getSupplierDeliveryCities(String country) throws SQLException;
}